Systems, devices, and methods for estimating stock level with depth sensor

ABSTRACT

Systems, apparatuses, and methods for scanning a shopping space. The system comprises a locomotion system, a 3D scanner system, and a central computer system. The locomotion system of a motorized unit comprises a locomotion controller and a motor. The 3D scanner system comprises a depth sensor and a 3D scanner processor configured to identify a 3D space associated with a storage area, estimate an occupied volume in the 3D space associated with the storage area based on a 3D scan from the depth sensor, and estimate a stock level of the storage area based on the occupied volume. The central computer system comprises a control circuit configured to receive estimated stock levels from the 3D scanner system and update an inventory database based on the estimated stock levels received from the 3D scanner.

This application claims the benefit of U.S. Provisional Application No. 62/885,695, filed Aug. 12, 2019 and U.S. Provisional Application No. 62/888,771, filed Aug. 19, 2019, both of which are incorporated herein by reference in their entirety.

TECHNICAL FIELD

These teachings relate generally to shopping environments and more particularly to devices, systems, and methods for scanning shelves in a shopping environment.

BACKGROUND

Placement and accuracy of price tags and products affect a customer's shopping experience and a store's sales. Conventionally, display shelves and labels are manually checked by store associates. The process can be time assuming and often lacks accuracy.

BRIEF DESCRIPTION OF THE DRAWINGS

The above needs are at least partially met through provision of embodiments of systems, devices, and methods designed to automated shelf scanning, such as described in the following detailed description, particularly when studied in conjunction with the drawings, wherein:

FIG. 1 comprises a block diagram of a system in accordance with some embodiments;

FIG. 2 comprises a flow diagram of a method in accordance with some embodiments;

FIG. 3 comprises a flow diagram of a method in accordance with some embodiments;

FIG. 4 comprises an illustration of a motorized unit in accordance with some embodiments; and

FIG. 5 comprises an illustration of volume estimation in accordance with some embodiments.

Elements in the figures are illustrated for simplicity and clarity and have not necessarily been drawn to scale. For example, the dimensions and/or relative positioning of some of the elements in the figures may be exaggerated relative to other elements to help to improve understanding of various embodiments of the present teachings. Also, common but well-understood elements that are useful or necessary in a commercially feasible embodiment are often not depicted in order to facilitate a less obstructed view of these various embodiments of the present teachings. Certain actions and/or steps may be described or depicted in a particular order of occurrence while those skilled in the art will understand that such specificity with respect to sequence is not actually required. The terms and expressions used herein have the ordinary technical meaning as is accorded to such terms and expressions by persons skilled in the technical field as set forth above except where different specific meanings have otherwise been set forth herein.

DETAILED DESCRIPTION

The following description is not to be taken in a limiting sense, but is made merely for the purpose of describing the general principles of exemplary embodiments. Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.

Systems and methods for store scanning are provided herein. In some embodiments, a system for scanning a shopping space comprises a locomotion system of a motorized unit configured to navigate the motorized unit in the shopping space and track a location of the motorized unit, the locomotion system comprises a locomotion controller and a motor, a camera system of the motorized unit configured to capture images, the camera system comprises an image sensor and a camera processor configured to extract item identifiers from the images captured by the image sensor, and a central computer system communicatively coupled to the locomotion system and the camera system over a wireless network. The central computer system comprises a control circuit configured to receive motorized unit location information from the locomotion system, the motorized unit location information comprises a plurality of sets of coordinates each associated with a timestamp, receive item identifier instances from the camera system, wherein each item identifier instance is associated with a timestamp, and determine a location for each item identifier instance based on the timestamps associated of the item identifier instances and the timestamps associated with the plurality of sets of coordinates of the motorized unit location information.

In some embodiments, the system includes edge computing, sensors and cameras, a backend server machine intelligence system, and a frontend visualization. The system integrates and controls a mobile unit and scans price tags and inventory using a combination of computer vision, location awareness, and algorithms and architectures to calculate and infer the precise locations of item price tags and determine inventory stock levels. In some embodiments, the system utilizes the (x,y) coordinates obtained from the robot and images of price tags as a proxy for price tag locations. The (x,y) locations of the robot are projected to the shelves to identify the location of the price tags. In some embodiments, the system utilizes processes and architecture that merges the imaging information and coordinate information to determine the approximate location of the price tag image instance. The system is further configured to determine which of the image instances of price tags corresponds to the same price tag(s) and can discern between multiple image instances of price tags that are scanned from the same product at the same location and the same product at multiple locations. In some embodiments, the vision systems on the edge function independently with the control chip onboard. The information gathered by the vision system and the control chip are only combined at the backend.

FIG. 1 illustrates a block diagram of a system for shopping space scanning in accordance with various embodiments of these teachings. The system includes a motorized unit 100 and a central computer system 150. The motorized unit 100 comprises a locomotion system 110, a camera system 120, and a 3D scanner system 130.

The locomotion system 110 comprises a locomotion controller 111, a location tracker 112, a motor 113, and a transceiver 114. The locomotion system 110 is generally configured to carry and camera system 120 and the 3D scanner system 130 and travel in a shopping space. The locomotion controller 111 may be one or more of a processor, a microprocessor, a single board computer, a control circuit, an application specific integrated circuit (ASIC) and the like. In some embodiments, the locomotion controller 111 may be configured to drive and steer the motorized unit 100 based on instructions received from the central computer system 150. In some embodiments, the locomotion system 110 may be remote-controlled by the central computer system 150. In some embodiments, the locomotion system 110 may comprise an autonomous or semi-autonomous vehicle configured to travel for an extended period of time without communicating with the central computer system 150. For example, an assigned route may be stored on a local memory of the locomotion system 110 at the beginning of the trip and the locomotion system 110 may use one or more onboard sensors to navigate the motorized unit 100 to complete the assigned route while avoiding obstacles. The locomotion controller 111 is further configured to report the location of the motorized unit 100 to the central computer system 150. In some embodiments, location information comprises a plurality of sets of coordinates each associated with a timestamp and may be transmitted in real-time, transmitted periodically, or uploaded at the completion of the trip. In some embodiments, the locomotion controller 111 may be configured to detect a loss of network connection to the central computer system and store the location information on a local memory to upload when the network connection is restored.

The location tracker 112 generally refers to a hardware and/or software module configured to determine the location of the motorized unit 100. In some embodiments, the location tracker may comprise a simultaneous location and mapping (SLAM) module based on one or more of environmental feature tracking, inertial measurement unit (IMU) measurement, kinematic modeling, and odometer data. In some embodiments, the location tracker 112 may comprise an in-door positioning system sensor such as a Wi-Fi transceiver, a Bluetooth beacons sensor, a magnetic positioning sensor, a dead reckoning module and the like.

The motor 113 is generally configured to drive wheels of the motorized unit 100 to drive and steer the motorized unit. The transceiver 114 is generally configured to allow the locomotion controller 111 to wirelessly exchange data with the central computer system 150. In some embodiments, the transceiver 114 may comprise one or more of a Wi-Fi transceiver, a Bluetooth transceiver, a mobile data transceiver, and the like. The locomotion system 110 may receive travel instructions from the central computer system 150 and/or upload motorized unit location information to the central computer system 150 via the transceiver 114. In some embodiments, the locomotion system 110 may further receive a time synchronization signal from the central computer system 150 to synchronize the internal clocks of the components of the motorized unit 100. In some embodiments, the locomotion system 110 further comprises navigation sensors such as image sensors and range/depth sensors that are used to navigation the motorized unit 100 and are independent of the camera system 120 and the 3D scanner system 130.

The camera system 120 comprises a camera processor 121, a camera memory 122, an image sensor 123, and a transceiver 124. The camera system 120 is generally configured to capture and process images in the shopping space. In some embodiments, the camera system 120 further configured to extract item identifiers from the captured images. Item identifiers generally refer to a code that identifies a product for sale such as a QR code, a barcode, a UPC number, and the like. In some embodiments, the camera system 120 may capture other information on price tags such as product name, product description, and listed price using image and/or text recognition algorithms. The camera processor 121 is further configured to report the captured product identifier instances to the central computer system 150. In some embodiments, product identifier instances comprise detected product identifiers each associated with a timestamp and may be transmitted in real-time, transmitted periodically, or uploaded at the completion of the trip. In some embodiments, the camera processor 121 may be configured to detect a loss of network connection to the central computer system and store the location information on a camera memory 122 to upload when the network connection is restored. The camera memory 122 may be any volatile or non-volatile computer memory storage device such as a hard drive, a solid-state drive, a flash storage device, and the like. In some embodiments, the camera processor 121 may further be configured to transmit captured images to the central computer system 150. In some embodiments, the camera processor 121 is configured to periodically query the central computer system to determine whether the locomotion system has completed a trip and continuously capture images at set intervals until completion of the trip is detected. In some embodiments, after the completion of the trip is detected, the camera system 120 will continue to upload any item identifier instances captured during the trip and notify the central computer system 150 when the upload is completed.

The image sensor 123 generally comprises a sensor configured to read item identifiers from shelf labels. In some embodiments, the camera system 120 may comprise a plurality of optical sensors positioned at different heights and/or orientations. For example, image sensors 123 of a camera system 120 may be placed at two or more heights each approximating the heights of shelf levels. In some embodiments, image sensors 123 may point in opposite directions to capture images from both sides of an aisle as the motorized unit 100 travels down an aisle.

The transceiver 124 is generally configured to allow the camera system 120 to wirelessly exchange data with the central computer system 150. In some embodiments, the transceiver 124 may comprise one or more of a Wi-Fi transceiver, a Bluetooth transceiver, a mobile data transceiver, and the like. The camera system 120 may receive a time synchronization signal and scanning instructions from the central computer system 150 via the transceiver. In some embodiments, the scanning instructions may comprise a start time and/or a scanning frequency (e.g. every second, every 2 seconds, etc.). In some embodiments, the camera system 120 may further receive a termination signal to end the periodic scanning. In some embodiments, the camera system 120 is configured to upload scanned item identifiers and/or captured images to the central computer system via the transceiver 124. In some embodiments, the camera system 120 is configured to capture images and extract item identifiers for an extended period of time without communicating with the central computer system 150.

In some embodiments, the camera system 120 is a removable module of the motorized unit 100 with no data connection to the locomotion system 110, such that removal of the camera system 120 does not affect the operations and the configurations of the locomotion system 110. In some embodiments, a motorized unit 100 may comprise a plurality of camera systems 120 that are each configured to capture and process images and communicate with the central computer system 150 independent of each other. In some embodiments, one or more camera systems 120 and/or the locomotion system 110 may share a power source such as a battery.

The 3D scanner system 130 comprises a 3D scanner processor 131, a 3D scanner memory 132, a depth sensor 133, and a transceiver 134. The 3D scanner system 130 is generally configured to capture and process depth information. In some embodiments, the 3D scanner system 130 may capture a 3D point cloud from storage areas in the shopping space. The 3D scanner processor is configured to identify a 3D space associated with a storage area and perform volume estimation of the 3D space based on the captured 3D point cloud. In some embodiments, the 3D scanner system 130 may further comprise a 2D image sensor that captures color images. In some embodiments, the 3D scanner system 130 may use images captured by the camera system 120 to determine the boundaries of a storage space. The 3D scanner system 130 may further be configured to report the volume estimation to the central computer system 150. In some embodiments, each volume estimation is associated with a timestamp and may be transmitted in real-time, transmitted periodically, or uploaded at the completion of the trip. In some embodiments, the 3D scanner processor 131 may be configured to detect a loss of network connection to the central computer system and store the location information on a 3D scanner memory 132 to upload when the network connection is restored. The scanner memory 132 may be any volatile or non-volatile computer memory storage device such as a hard drive, a solid-state drive, a flash storage device, and the like. In some embodiments, the camera processor 121 is configured to periodically query the central computer system to determine whether the locomotion system 110 has completed a trip and continuously perform volume estimations at set intervals until the completion of the trip is detected. In some embodiments, after the completion of the trip is detected, the 3D scanner system 130 may continue to upload any volume estimation data captured during the trip and notify the central computer system 150 when the upload is completed. In some embodiments, the 3D scanner system 130 is configured to estimate stock levels of a plurality of storage areas for an extended period of time without communicating with the central computer system 150.

The depth sensor 133 generally comprises a sensor configured to measure the distance between the sensor and a plurality of points in front of the sensor. In some embodiments, the depth sensor 133 may comprise one or more of a time-of-flight camera (e.g. lidar), a triangulation scanner (e.g. laser scanner), a stereoscopic camera, a structured light scanner, and the like. In some embodiments, the 3D scanner system 130 may comprise a plurality of depth sensors positioned at different heights and/or orientations. For example, depth sensors 133 of a 3D scanner system 130 may be placed at two or more heights each approximating the heights of shelf levels. In some embodiments, depth sensors 133 may point in opposite directions to perform scans on both sides of an aisle as the motorized unit 100 travels down an aisle.

The transceiver 134 is generally configured to allow the 3D scanner system 130 to wirelessly exchange data with the central computer system 150. In some embodiments, the transceiver 134 may comprise one or more of a Wi-Fi transceiver, a Bluetooth transceiver, a mobile data transceiver, and the like. The 3D scanner system 130 may receive a time synchronization signal and scanning instructions from the central computer system 150 via the transceiver 134. In some embodiments, the scanning instructions may comprise a start time and/or a scanning frequency. In some embodiments, the 3D scanner system 130 may further receive a termination signal to end the periodic scanning. In some embodiments, the 3D scanner system 130 is configured to upload volume estimations and/or captured point clouds to the central computer system 150 via the transceiver 134. In some embodiments, the 3D scanner system 130 may make use of images captured by the camera system 120 that is transmitted via the central computer system 150 and/or received directly from the camera system 120 via a wired or wireless connection.

In some embodiments, the 3D scanner system 130 is a removable module of the motorized unit with no data connection to the locomotion system 110, such that removal of the 3D scanner system 130 does not affect the functions or the configuration of the locomotion system 110. In some embodiments, a motorized unit 100 may comprise a plurality of 3D scanner systems 130 that are each configured to capture and process scans and communicate with the central computer system 150 independent of each other. In some embodiments, one or more 3D scanner systems 130 and/or the locomotion system 110 may share a power source such as a battery. In some embodiments, the 3D scanner system 130 may be optional to the motorized unit 100. For example, for a motorized unit 100 that only scans shelf labels but does not perform stock level estimation, the 3D scanner system 130 may be omitted.

An example configuration of a motorized unit 100 is shown in FIG. 4. In FIG. 4, the motorized unit 100 comprises a locomotion system 110 and a plurality of camera systems 120 and 3D scanner systems 130 supported by a frame structure 115. The camera systems 120 and 3D scanner systems 130 are positioned at different heights that may correspond to levels of shelves in the shopping space. One or more of the camera systems 120 and the 3D scanner systems 130 may be pointed in different directions.

The central computer system 150 includes a control circuit 151 and a memory 152 and may be generally referred to as a processor-based device, a computing device, a server, a backend system, and the like. In some embodiments, the central computer system 150 may be implemented with one or more physical processor-based devices.

The central computer system 150 has stored on its memory 152 a set of computer-readable instructions that is executable by the control circuit 151 to cause the control circuit 151 to obtain motorized unit location information from the locomotion system 110 and item identifier information from the camera system 120 and correlate them to map out item identifier locations based on their timestamps. In some embodiments, the central computer system 150 is further configured to receive volume estimation information from the 3D scanner system 130 and estimate stock levels in storage spaces. In some embodiments, the central computer system 150 is also configured to provide navigation instructions to the locomotion system 110 and scanning instructions to the camera system 120 and/or 3D scanner system 130. In some embodiments, the central computer system 150 tracks the completion of a trip by the locomotion system 110 and instructs the camera system 120 and the 3D scanner system 130 to stop capturing images and scans when the trip is completed. In some embodiments, the central computer system 150 synchronizes the internal clocks of two or more of the locomotion system 110, the camera system 120, and the 3D scanner system 130. In some embodiments, the central computer system 150 is configured to map the shopping space by mapping item identifier location to a 3D model of the shopping space using a key-point based algorithm that then employs bi-linear interpolation. The map may be used by customers, store associates, or autonomous units to locate items in the shopping space. In some embodiments, the central computer system 150 may further generate associate and/or autonomous unit tasks based on information received from the motorized unit 100. For example, if a price tag does not comply with a planogram (e.g. wrong location or error in content), a corrective task may be generated. In another example, when the stock level is detected to fall below a threshold (e.g. 50%, 30%, etc.) a restocking task may be generated. While one motorized unit 100 is shown in FIG. 1, the central computer system 150 may simultaneously exchange data with a plurality of motorized units 100 traveling in one or more shopping spaces.

FIG. 2 shows a flow diagram of a method for scanning a shopping space in accordance with some embodiments of these teachings. The steps shown in FIG. 2 may be performed by one or more of the locomotion system 110, the camera system 120, the 3D scanner system 130, and the central computer system 150 described with reference to FIG. 1 In some embodiments, the steps are performed by one or more processor-based devices executing computer readable instructions stored on one or more memory devices.

The system takes as input, motorized unit location information from a locomotion system 210, item identifier instances from a camera system 220, and volume estimation from a 3D scanner system 230. Location information comprises a plurality of sets of coordinates (x, y) each associated with a timestamp. Item identifier instances comprise an item code associated with a timestamp. In some embodiments, item identifier may further comprise a camera identifier such that the central computer system may identify the position of the camera on the motorized unit (e.g. left facing, right facing, height, etc.) Volume estimation generally refers to an estimation of the fullness of a storage area (e.g. shelf, bin). Volume estimation may also be referred to as stock level and may be presented as a fullness percentage (e.g. 30%, 50%, etc.), a volume measurement (e.g. 1.5 cubic meters), and/or a 3D shape. The camera system 220 and the 3D scanner system 230 may comprise independent systems carried on the locomotion system 210.

In step 201, the system correlates the motorized unit location coordinates, the item identifiers, and volume estimations based on their respective time stamps. For example, the system may determine a location for each item identifier instance based on the timestamps associated of the item identifier instances and the timestamps associated with the plurality of sets of coordinates of the motorized unit location information. In some embodiments, step 201 may be performed continuously as data is received or be triggered at the end of a trip.

In one example process for correlating location information with item identifier and/or volume estimation data, the location data is considered the base truth. A map (Map_Loc) of the location data is created and sorted according to the natural ordering of its timestamp values. Item identifier data(item_list) and stock level data(stock_list) within the lowest timestamp(min_ts) and highest timestamp(max_ts) in the location data are retrieved. For every item code in item_list, the timestamp (itemCode_ts) is mapped to the nearest neighbor in both the Map_Loc and stock_list. The system may first check for a direct mapping between timestamp values from item_list and stock_list to Map_Loc. If no nearest neighbor greater than a threshold distance (Dt) is found, then the system interpolates between C1(x1,y1) and C2(x2,y2) where C1 and C2 are points used to compute threshold distance Dt. The new threshold distance is then used to check for nearest neighbors and assign the corresponding value.

In step 203, item identifier instances are clustered to group item identifier instances associated with the same item identifier in the shopping space. In some embodiments, the system may create grids along the X and Y direction respectively to forms M×N grids. For each grid in the M×N grids, the system may average the coordinates (x, y) of item identifier instances in the group, and verify that each item identifier in the grid is unique and has one pair of coordinates. With the grid approach, labels for items that are stored in multiple locations would not be merged. In some embodiments, step 203 may be performed with data received from multiple motorized units performing scans in a shopping space such that item identifier instances of the same item identifier captured by different motorized units are grouped.

In some embodiments, the locations of the item identifier may then be used to update the store map 240. In some embodiments, the system may map the item identifier location to a 3D model of the shopping space using a key-point based algorithm that then employs bi-linear interpolation. The map may be used by customers, store associates, or autonomous units to locate items in the shopping space. In some embodiments, the system may further use the item identifier locations determines in step 203 to verify item and label locations for planogram compliance in step 206. For example, the system may compare the images captured by the camera system 220 and/or the 3D scanner 230 system with the detected item identifiers at the same location to determine whether images of the storage area matches the characteristics (e.g shape, size, color, text, etc.) of the item associated with the item identifier.

In step 204, measured stock levels are similarly clustered. In some embodiments, the system may create grids in the X and Y direction for different shelf heights such that each cell approximates a storage space (e.g. bin). In some embodiments, the system may refine stock level estimation by averaging or selecting from estimated stock levels associated with the same storage area. In some embodiments, the system may determine the mean or the medium of stock level estimations associated with a cell of the grid to increase the accuracy of the estimation. In some embodiments, the system may select one stock level measurement in each grid based on the location of the scans within the grid to select a measurement that is performed at a preferred angle (e.g. most aligned with the center of the bin). In some embodiments, the system may select scan(s) with the least amount of obstruction (e.g. least amount of points that is significantly forward of the access plane). In some embodiments, step 204 may be performed with data received from multiple motorized units performing scans in a shopping space.

In step 205, the estimated stock level is associated with the item identifier. In some embodiments, the association may be based on the grid approached and/or the closest neighbor approach. The estimated stock level associated with the item identifier is then used to update the inventory database 250. In some embodiments, the estimated stock level may be used to trigger a restocking task for the associated item and/or item location.

In some embodiments, the process shown in FIG. 2 may be repeated periodically and/or continuously monitor the shelves of a shopping space. In some embodiments, for a system without a 3D scanner, steps 204 and 205 may be omitted.

FIG. 3 shows a flow diagram of a method for estimating stock level in a shopping space in accordance with some embodiments of these teachings. The steps shown in FIG. 3 may be performed by one or more of the locomotion system 110, the camera system 120, the 3D scanner system 130, and the central computer system 150 described with reference to FIG. 1. In some embodiments, the steps are performed by one or more processor-based devices executing computer readable instructions stored on one or more memory devices.

In step 301, the system captures an image of a storage area. In some embodiments, the image may be captured by a 2D camera of the 3D scanner system 130 or the camera system 120 described with reference to FIG. 1. In step 302, the system determines the boundary of the access plane of the storage area. In some embodiments, step 302 may be performed based on one or more of a convolutional neural network (CNN), an AI algorithm, and/or image recognition algorithm. In some embodiments, if two or more items share a storage space, the system may further perform image recognition to subdivide a storage area into sections associated with different items.

In step 302, the system retrieves the location of the motorized unit. In step 303, the system determines the distance from the 3D scanner to the access plane and the rear plane of the storage area. In some embodiments, the location of the motorized unit may be compared to a map of the shopping space to measure the distance between the motorized unit to the access plane of the storage area. In some embodiments, instead of using the motorized unit location from step 305, the system may use the dimension of the access plane as seen in the image of the storage area captured in step 301 to calculate the distance between the 3D scanner and the storage area. In some embodiments, the depth scanner used to perform the 3D scan in step 305 may measure a distance between the sensor and the access plane. In such embodiments, the 3D scanner does not use motorized unit location information. The distance to the rear plane of the shelf may be calculated from the location of the access plane of the shelf and the known depth of the storage area. In some embodiments, the depth of the storage area is determined based on identifying one or more of a storage area type and a storage area location. For example, a shopping space may have several different types of storage areas (e.g. pallets, bins, shelves, refrigerators, etc.). The system may first determine the storage type by scanning for a storage area or item identifier, locating the locomotion system on a store map, or based on the dimension of the access plane. The known depth of the storage type may then be used in step 303. In step 304, the boundary information (height, width) and the depth information are combined to define a 3D space associated with the storage area. The 3D space generally corresponds to the available storage volume of the storage area.

In step 305, the system performs a 3D scan of the storage area. In some embodiments, the 3D scan may be performed by the depth sensor 133 described with reference to FIG. 1. In some embodiments, step 305 is triggered by step 302. For example, when an image analysis identifies a storage area, the depth scanner is triggered to perform depth measurements. In some embodiments, the 3D scan outputs a point cloud. In step 306, the 3D space associated with the storage area determined in step 304 is isolated from the scan captured at step 305 for volume measurement. Since items are generally picked from the front of the storage area, detected points are projected on to planes behind it to compute the total volume based on the following equation:

Total Volume=∫_(w=1) ^(w=n) A(w)dw

An example of the projection is shown in FIG. 5 where points detected in the first plane 510 are projected onto the second plane 520 and points from both planes are projected onto the third plane 530. In some embodiments, the system may exclude points that are significantly forward of the access plane of the storage area. Such points may correspond to customers or other objects that are not in the storage area. In some embodiments, multiple scans may be combined to subtract objects obscuring the storage area from the point cloud. In some embodiments, the 3D scanner system or a central computer system may further be configured to combine 3D scans of the storage area from multiple angles to estimate the occupied volume. For example, multiple scans may be combined into a 3D model of the occupied volume in the storage space.

In Step 307, the stock level associated with the storage area is estimated. In some embodiments, the stock level may be determined based on the measured volume of items as compared to the capacity of the storage area. For example, stock level may be determined to be 20%, 30%, etc. based on the volume estimation alone without having to identify the item in the storage area. In some embodiments, a smoothing function may be applied to the captured 3D volume prior to calculating the volume to account for irregularly shaped items (e.g. bottles with handles, necks, etc.). In some embodiments, the system may first identify the item in the storage area either with image recognition or by scanning an item identifier on a label marking the storage space and determine the amount smoothing to apply to the measured 3D volume based on the known shape of the item. In some embodiments, a standard threshold smoothing function may be applied without identifying the items in the storage area. For example, the system may determine that cavities below a certain size threshold does not reflect the absence of an item and ignore these cavities in the stock level estimation. In storage areas storing multiple items, stock level may be estimated separately for each item. In some embodiments, the 3D scanner processor may perform step 204 described with reference to FIG. 2 to estimate stock level. In some embodiments, step 307 may be performed locally by the 3D scanner processor or may be performed at a central computer system.

In step 308, the item associated with the storage area is identified. In some embodiments, the item may be identified based on the process described with reference to FIG. 2. In some embodiments, an item identifier may be extracted from the image taken in step 301 or by a different device. In step 309, the estimated stock level determined in step 307 is used to update the inventory database entry associated with the item identifier identified in step 308. In some embodiments, the estimated stock level may instead be associated with a storage area identifier and/or a storage area location in the inventory database. In some embodiments, stock levels may be separately tracked for items stored in multiple locations. In some embodiments, instead of or in addition to updating the inventory database, the system may generate a task to restock the storage area if the stock level falls below a threshold (e.g. 50%, 30%).

In some embodiments, a system for scanning a shopping space comprises a locomotion system of a motorized unit configured to navigate the motorized unit in the shopping space, the locomotion system comprises a locomotion controller and a motor and a 3D scanner system of the motorized unit configured to perform 3D scans. The 3D scanner system comprises a depth sensor and a 3D scanner processor configured to identify a 3D space associated with a storage area, estimate an occupied volume in the 3D space associated with the storage area based on a 3D scan from the depth sensor, and estimate a stock level of the storage area based on the occupied volume. A central computer system is communicatively coupled to the locomotion system and the 3D scanner system over a wireless network. The central computer system comprises a control circuit configured to receive estimated stock levels from the 3D scanner system and update an inventory database based on the estimated stock levels received from the 3D scanner.

In some embodiments, a method for scanning a shopping space comprises providing, from a central computer system, travel instructions to a locomotion system of a motorized unit, wherein the locomotion system comprises a locomotion controller and a motor and is configured to navigate the motorized unit in the shopping space, receiving, at the central computer system, estimated stock levels from the 3D scanner system, wherein the 3D scanner system comprises a depth sensor and a 3D scanner processor configured to estimate an occupied volume in a 3D space associated with a storage area based on a 3D scan from the depth sensor and estimate a stock level of the storage area based on the occupied volume, and updating an inventory database based on the estimated stock levels received from the 3D scanner.

In some embodiments, an apparatus for scanning a shopping space comprises a non-transitory storage medium storing a set of computer readable instructions and a control circuit configured to execute the set of computer readable instructions which cause to the control circuit to: provide travel instructions to a locomotion system of a motorized unit, wherein the locomotion system comprises a locomotion controller and a motor and is configured to navigate the motorized unit in the shopping space, receive estimated stock levels from the 3D scanner system, wherein the 3D scanner system comprises a depth sensor and a 3D scanner processor configured to estimate an occupied volume in a 3D space associated with a storage area based on a 3D scan from the depth sensor and estimate a stock level of the storage area based on the occupied volume, and update an inventory database based on the estimated stock levels received from the 3D scanner.

Those skilled in the art will recognize that a wide variety of modifications, alterations, and combinations can be made with respect to the above described embodiments without departing from the scope of the invention, and that such modifications, alterations, and combinations are to be viewed as being within the ambit of the inventive concept. 

What is claimed is:
 1. A system for scanning a shopping space comprising: a locomotion system of a motorized unit configured to navigate the motorized unit in the shopping space, the locomotion system comprises a locomotion controller and a motor; a 3D scanner system of the motorized unit configured to perform 3D scans, the 3D scanner system comprises a depth sensor and a 3D scanner processor configured to: identify a 3D space associated with a storage area; estimate an occupied volume in the 3D space associated with the storage area based on a 3D scan from the depth sensor; and estimate a stock level of the storage area based on the occupied volume; and a central computer system communicatively coupled to the locomotion system and the 3D scanner system over a wireless network, the central computer system comprises a control circuit configured to: receive estimated stock levels from the 3D scanner system; and update an inventory database based on the estimated stock levels received from the 3D scanner.
 2. The system of claim 1, wherein the 3D scanner system is a removable module of the motorized unit with no data connection to the locomotion system and is configured to be removed without affecting the locomotion system.
 3. The system of claim 1, wherein the 3D scanner is configured to estimate stock levels of a plurality of storage areas while not in communication with the central computer system.
 4. The system of claim 1, wherein the 3D scanner system is configured to identify the 3D space associated with the storage area by: capturing an image of the storage area; detecting a boundary of an access plane of the storage area based on the image of the storage area; determining a distance from the depth sensor to the access plane of the storage area; and identify the 3D space based on the boundary of the access plane, the distance to the access plane, and a depth of the storage area.
 5. The system of claim 4, wherein the boundary of the access plane is identified via a convolution neural network algorithm.
 6. The system of claim 4, wherein the depth of the storage area is determined based on identifying one or more of a storage area type and a storage area location.
 7. The system of claim 1, wherein the 3D scanner system is further configured to combine 3D scans of the storage area from multiple angles to estimate the occupied volume.
 8. The system of claim 1, wherein the 3D scanner system is further configured to apply a smoothing function to the 3D scan to estimate the stock level.
 9. The system of claim 1, wherein the central computer system is further configured to determine a refined stock level estimation by averaging or selecting from estimated stock levels associated with the same storage area. s
 10. The system of claim 1, wherein the motorized unit further comprises an image sensor configured to capture item identifiers in a shopping space and the central computer system is configured to update the inventory database based on item identifiers associated with one or more estimated stock levels.
 11. A method for scanning a shopping space comprising: providing, from a central computer system, travel instructions to a locomotion system of a motorized unit, wherein the locomotion system comprises a locomotion controller and a motor and is configured to navigate the motorized unit in the shopping space; receiving, at the central computer system, estimated stock levels from the 3D scanner system, wherein the 3D scanner system comprises a depth sensor and a 3D scanner processor configured to estimate an occupied volume in a 3D space associated with a storage area based on a 3D scan from the depth sensor and estimate a stock level of the storage area based on the occupied volume; and updating an inventory database based on the estimated stock levels received from the 3D scanner.
 12. The method of claim 11, wherein the 3D scanner system is a removable module of the motorized unit with no data connection to the locomotion system and is configured to be removed without affecting the locomotion system.
 13. The method of claim 11, wherein the 3D scanner is configured to estimate stock levels of a plurality of storage areas while not in communication with the central computer system.
 14. The method of claim 11, wherein the 3D scanner system is configured to identify the 3D space associated with the storage area by: capturing an image of the storage area; detecting a boundary of an access plane of the storage area based on the image of the storage area; determining a distance from the depth sensor to the access plane of the storage area; and identify the 3D space based on the boundary of the access plane, the distance to the access plane, and a depth of the storage area.
 15. The method of claim 14, wherein the boundary of the access plane is identified via a convolution neural network algorithm.
 16. The method of claim 14, wherein the depth of the storage area is determined based on identifying one or more of a storage area type and a storage area location.
 17. The method of claim 11, wherein the 3D scanner system is further configured to combine 3D scans of the storage area from multiple angles to estimate the occupied volume.
 18. The method of claim 11, wherein the 3D scanner system is further configured to apply a smoothing function to the 3D scan to estimate the stock level.
 19. The method of claim 11, further comprising: determining a refined stock level estimation by averaging or selecting from estimated stock levels associated with the same storage area.
 20. An apparatus for scanning a shopping space comprising: a non-transitory storage medium storing a set of computer readable instructions; and a control circuit configured to execute the set of computer readable instructions which cause to the control circuit to: provide travel instructions to a locomotion system of a motorized unit, wherein the locomotion system comprises a locomotion controller and a motor and is configured to navigate the motorized unit in the shopping space; receive estimated stock levels from the 3D scanner system, wherein the 3D scanner system comprises a depth sensor and a 3D scanner processor configured to estimate an occupied volume in a 3D space associated with a storage area based on a 3D scan from the depth sensor and estimate a stock level of the storage area based on the occupied volume; and update an inventory database based on the estimated stock levels received from the 3D scanner. 